package cn.sciento.transfer.infra.rocketmq.service;

import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;
import cn.sciento.transfer.domain.entity.ConsDbConfig;
import cn.sciento.transfer.domain.entity.ConsTenantConfig;
import cn.sciento.transfer.domain.entity.ProducerConfig;

public interface MqConsumerService {
  void startListener(String paramString1, String paramString2, ConsDbConfig paramConsDbConfig, ConsTenantConfig paramConsTenantConfig);
  
  void startListenerWithOutUpdateOffset(String paramString1, String paramString2, ConsDbConfig paramConsDbConfig, ConsTenantConfig paramConsTenantConfig);
  
  void suspend(ConsDbConfig paramConsDbConfig, ConsTenantConfig paramConsTenantConfig);
  
  void resume(ConsDbConfig paramConsDbConfig, ConsTenantConfig paramConsTenantConfig);
  
  DefaultMQPushConsumer createConsumer(String paramString1, String paramString2, ConsDbConfig paramConsDbConfig, ConsTenantConfig paramConsTenantConfig);
  
  void startAllConsumers();
  
  void stopConsumer(ConsDbConfig paramConsDbConfig, ConsTenantConfig paramConsTenantConfig);
  
  boolean hasBeenStarted(ConsDbConfig paramConsDbConfig, ConsTenantConfig paramConsTenantConfig);
  
  void restartConsumerWithUpdateOffset(ProducerConfig paramProducerConfig, ConsDbConfig paramConsDbConfig, ConsTenantConfig paramConsTenantConfig);
  
  void deleteConsumer(ProducerConfig paramProducerConfig);
}
